<?php
/**
 * @author		João Batista Neto
 * @package		rpo
 * @subpackage	cert\interfaces
 * @category	OpenSSL, certificates
 * @license		http://opensource.org/licenses/gpl-license.php GNU Public License
 */
namespace rpo\cert\interfaces;

/**
 * Define a interface para uma requisição de certificado
 * @author		João Batista Neto
 * @package		rpo
 * @subpackage	cert\interfaces
 * @category	OpenSSL, certificates
 * @license		http://opensource.org/licenses/gpl-license.php GNU Public License
 */
interface IOpenSSLCertificateRequest extends IOpenSSLResource, IOpenSSLExportable {
	/**
	 * Gera a requisição de certificado
	 * @param IOpenSSLKey $key A chave que será utilizada para gerar a requisição de certificado
	 * @param IOpenSSLData $config Configurações utilizadas para gerar a requisição
	 */
	public function generate( IOpenSSLKey $key , IOpenSSLData $config = null );

	/**
	 * Recupera o nome alternativo para ser utilizado na variável de ambiente SAN
	 * @return string
	 */
	public function getSAN();
}